Publish/subscribe (pub-sub) data processing and messaging systems have become very popular in recent years as a way of distributing data messages. Pub-sub messaging systems are a messaging technology that may be used in Internet based or other networked environments. In a pub-sub network, one or many publisher applications send messages to the network and subscriber applications register subscriptions to indicate the subscriber's interest in receiving certain types of messages pertaining to certain topics. If a published message matches one of the subscriptions stored for a particular subscriber, the message is passed to the subscriber by a subscriber messaging engine. In typical pub-sub messaging systems, it is the responsibility of a messaging engine to which the publisher application is connected to push messages to messaging engines connected to relevant, or subscribed, subscriber applications. It is common, especially in cloud computing scenarios, to have a messaging system with hundreds, or more, messaging engines.
In typical pub-sub messaging systems, the publisher sets a message priority level for each message. This priority level reflects the importance of a given message, determined by the publisher, relative to the other messages published by that publisher. In typical pub-sub messaging systems, subscribers are not able to affect the order in which the messaging engine delivers the messages. As a result, subscribers may often receive messages that are less important to the subscriber than other messages. Publishers also set expiration times for messages. Once a message reaches its expiration time, it is deleted from the pub-sub messaging system. Because the priorities and expiration times are set by the publisher, some messages may expire before they are ever delivered to the subscriber, resulting in the subscriber never receiving a message with high priority.